/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：LineNumberGenerator.js<br>
 * 日期：2017年1月13日<br>
 * 作者: 杨顺强<br>
 * 功能：连线节点标号生成器<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/
window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 函数名称：Rainier.UI.V2.LineNumberGenerator<br>
 * 函数功能：构造函数<br>
 * 参数输入：<br>
 * 异常信息：<br>
 */
Rainier.UI.V2.LineNumberGenerator = Rainier.Basic.CompositeObject.extend({
	
	NAME : "Rainier.UI.V2.LineNumberGenerator",
	
	/**
	 * 函数名称：Rainier.UI.V2.LineNumberGenerator<br>
	 * 函数功能：数值生成器初始化函数<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	init : function(){
		this.currentNumber	  	= 0;
		this.generateNumberList = new draw2d.util.ArrayList();
		this.removeNumberList   = new draw2d.util.ArrayList();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.LineNumberGenerator.generateNumber<br>
	 * 函数功能：数值生成器函数<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：<br>
	 * 异常信息：<br>
	 */
	generateNumber : function(){
		var removeNumberList 	= this.removeNumberList.getSize();
		var generateNumber		= 0;
		if(removeNumberList > 0){
			generateNumber = this.removeNumberList.get(0);
			this.removeNumberList.removeElementAt(0);
		}else{
			generateNumber = ++this.currentNumber;
		}
		this.generateNumberList.add(generateNumber);
		return generateNumber;
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.generateNumber.removeNumber<br>
	 * 函数功能：移除generatorNumberList中被删除掉的number值<br>
	 * 参数输入：number:将要删除的number值<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	removeNumber : function(number){
		this.generateNumberList.remove(number);
		this.removeNumberList.add(number);
		this.removeNumberList.sort(function(a,b){return a-b;});	//从小到大排序;
	},
});